/* 
 * File:   type.h
 * Author: zhouzhao
 *
 * Created on December 21, 2011, 1:38 PM
 */

#ifndef TYPE_H
#define	TYPE_H

enum NType {
    GATE, PI, FB, PO, PPI, PPO, DUMMY
};

enum GType
{
        IPT, BRCH,
        INVX1, INVX2, INVX4, INVX8,
        AND2X1, AND2X2,
        NAND2X1, NAND3X1,
        OR2X1, OR2X2,
        NOR2X1, NOR3X1,
        XOR2X1, XNOR2X1,
        AOI21X1, AOI22X1,
        OAI21X1, OAI22X1,
        DFFNEGX1, DFFPOSX1, DFFSR,
        BUFX2, BUFX4,
        FAX1, FAC, FAS, //FAC = full adder carry; FAS = full adder sum
        HAX1, HAC, HAS, //HAC = half adder carry; HAS = half adder sum
        MUX2X1, NA
};

//ZERO = 0; DBAR = 1; D = 2; ONE = 3; X = 4;
enum LType
{
    ZERO, DBAR, D, ONE, X
};

enum KWord{
    MODULE, INPUT, OUTPUT, WIRE, ASSIGN, ENDMODULE
};

#endif	/* TYPE_H */

